package com.example.vod.Utils;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * 这段代码是一个 Spring Framework 中的组件类，使用了 @Component 注解，表明它会被 Spring 容器管理。它还实现了 InitializingBean 接口，这意味着在 Spring 容器加载该类的实例时，会调用 afterPropertiesSet() 方法。
 * 在这个类中，有两个私有字段 keyid 和 keysecret，它们使用了 @Value 注解，这表示这些值会从 Spring 的属性文件（可能是 application.properties 或 application.yml）中读取，并赋给对应的字段。具体来说，${aliyun.vod.file.keyid} 和 ${aliyun.vod.file.keysecret} 是在属性文件中定义的键，用于获取对应的值。
 * 此外，类中还有两个公共的静态字段 ACCESS_KEY_ID 和 ACCESS_KEY_SECRET，它们被声明为静态变量，因此可以在类外部直接访问，并且不需要类的实例。在 afterPropertiesSet() 方法中，将从属性文件中读取的 keyid 和 keysecret 的值分别赋给了这两个静态变量。
 * 这样设计的目的可能是为了在其他地方方便地访问这些密钥信息，因为它们被声明为 public static，可以在没有该类实例的情况下直接使用类名访问这些变量。这在某些情况下可能是有用的，比如在整个应用程序中需要访问这些密钥信息时。
 */
@Component
public class ConstantVodUtils implements InitializingBean {

    @Value("${aliyun.vod.file.keyid}")
    private String keyid;

    @Value("${aliyun.vod.file.keysecret}")
    private String keysecret;

    public static String ACCESS_KEY_SECRET;
    public static String ACCESS_KEY_ID;

    @Override
    public void afterPropertiesSet() throws Exception {
        ACCESS_KEY_ID = keyid;
        ACCESS_KEY_SECRET = keysecret;
    }
}
